-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option for axial flip of phase_thick_3d
transfer function
#124
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sorry for the accidental inclusion of #123. |
ziw-liu
reviewed
Jun 9, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have a test case for this?
Edit: done in 7e99291
ziw-liu
approved these changes
Jun 9, 2023
Thanks @ziw-liu! |
talonchandler
added a commit
that referenced
this pull request
Jul 25, 2023
* New Stokes and Mueller module (#110) * Initial fwd and inv w/ tests * Add A-matrix and mueller-from-projection functions * Debug AR_mueller * Add convenience functions * Make 4d transposes nd with moveaxis * Add documentation * Improve module docstring * Change `KeyError` to `ValueError` * Improved docs * Remove unnecessary test * Removed "float" from docs * Revert "Removed "float" from docs" This reverts commit d9dd7e3. * Use `assert_almost_equal` * fixed couple of typos * `A` -> `I2S` & new `S2I` * comprehensive renaming * copy `s0` <-> `tra` * `np.array(s0)` so that it always has `.copy()` * Set default to "inverse" --------- Co-authored-by: Shalin Mehta <[email protected]> * PR docs (#111) * Add .git-blame-ignore-revs (#109) * Add #110 pr doc * Phase 2D + 3D refactor (#117) * black formatting * move 2D-to-3D phase recon to phase.py * convert gen_HZ_stack to ZYX * keep existing gpu handling * add 3D_to_3D phase OTF * improve naming consistency in phase_2D_to_3D_OTF * Add kwargs to recon params * change axes for 2D recon preparation * simplify 2D_to_3D recon with kwargs * handle padding and simplify OTFs * add 3D_to_3D recon with kwargs * temporarily remove docs for rewriting * first dependence on torch * move gen_Hz_stack to torch * convert 2d wotf to torch * move gen_Greens_function_z to torch * move important utils to torch * phase3Dto3D complete overhaul * refactor * optics.py to torch * high-level tests * splitt phase.py into models * clean up 3D script * cleaning and notes * phase2Dto3D placeholders * clean tests * use napari in tests * better skipping * reduce dependencies * update tests * maintiain PTI simulation's compatibility revised optics functions * drop pdb * Preserve birefringence recon * fix transpose bug * transpose bug * phase2Dto3D.py example * support padding * empty model for planaraniso * improved names * broad renaming of phase2D_3D and phase3D_3D * updated 2D phase and absorption recon Return the 2D absorption along with phase. Viewing OTFs in napari is very nice. I changed the axis order to be able to compare phase and absorption OTFs at focal plane. * display OTFs with Z-axis as a slider * changes to 2D phase/absorption simulation I suggest changing this example to be simulation and reconstruction of 2D specimens, thinner than the depth of field of the microscope. * rename models to <object-type>_<object-thickness>_<data_shape> * fix isotropic_thin_3d example, include absorption * 2D -> 2d, 3D -> 3d --------- Co-authored-by: Shalin Mehta <[email protected]> * Prepare polarization algorithms for integration with `recOrder` (#118) * black formatting * move 2D-to-3D phase recon to phase.py * convert gen_HZ_stack to ZYX * keep existing gpu handling * add 3D_to_3D phase OTF * improve naming consistency in phase_2D_to_3D_OTF * Add kwargs to recon params * change axes for 2D recon preparation * simplify 2D_to_3D recon with kwargs * handle padding and simplify OTFs * add 3D_to_3D recon with kwargs * temporarily remove docs for rewriting * first dependence on torch * move gen_Hz_stack to torch * convert 2d wotf to torch * move gen_Greens_function_z to torch * move important utils to torch * phase3Dto3D complete overhaul * refactor * optics.py to torch * high-level tests * splitt phase.py into models * clean up 3D script * cleaning and notes * phase2Dto3D placeholders * clean tests * use napari in tests * better skipping * reduce dependencies * update tests * maintiain PTI simulation's compatibility revised optics functions * drop pdb * Preserve birefringence recon * fix transpose bug * transpose bug * phase2Dto3D.py example * support padding * empty model for planaraniso * improved names * broad renaming of phase2D_3D and phase3D_3D * Rename variables in `stokes.py`. * updated 2D phase and absorption recon Return the 2D absorption along with phase. Viewing OTFs in napari is very nice. I changed the axis order to be able to compare phase and absorption OTFs at focal plane. * display OTFs with Z-axis as a slider * changes to 2D phase/absorption simulation I suggest changing this example to be simulation and reconstruction of 2D specimens, thinner than the depth of field of the microscope. * convert stokes to torch * initial draft of planaraniso model * rename models to <object-type>_<object-thickness>_<data_shape> * fix isotropic_thin_3d example, include absorption * 2D -> 2d, 3D -> 3d * calculate background corrections with transfer function * rearrange examples folder * rearrange examples folder * rearrange `isotropic` and `phase` examples * add `inplane_anisotropic` model and example * fix inplane tests * fix maintenance scripts * remove deprecated * use `np.meshgrid` for consistency * minor bug * integration changes --------- Co-authored-by: Shalin Mehta <[email protected]> * Remove kwargs from reconstructions (#119) * remove kwargs * fix estimated background bug * `illumination_wavelength` -> `wavelength_illumination` (#123) * Remove duplicate test (#125) remove duplicate test * Add option for axial flip of `phase_thick_3d` transfer function (#124) * `illumination_wavelength` -> `wavelength_illumination` * add option for axial flip of transfer function * test axial flip --------- Co-authored-by: Ziwen Liu <[email protected]> * Rename model from `anisotropic_thin` to `oriented_thick` (#127) `anisotropic_thin` -> `oriented_thick` * `isotropic_fluorescent_thick_3d` model (#128) * typo * model outline * prototype transfer function * 3d phantom + visualize transfer function * refactor apply_transfer_function * typo * refactor padding (with gpt docs + tests) * complete example * test apply_inverse_transfer_function * TV reconstructions raise NotImplementedError * `pad_zyx` -> `pad_zyx_along_z` * Simplify `data += 10` * Update tests/test_util.py Co-authored-by: Ziwen Liu <[email protected]> --------- Co-authored-by: Ziwen Liu <[email protected]> * Match parameters to simplify `recOrder`-`waveorder` interface (#131) * add axial_flip to `isotropic_thin_3d` * `illumination` -> `emission` for fluorescence * simplify parameters for usage with recOrder * fix test * pin torch>=2.0.0 * `z_position_list` should accept a list --------- Co-authored-by: Shalin Mehta <[email protected]> Co-authored-by: Ziwen Liu <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR solves a common problem in "3D phase" reconstructions: you perform a reconstruction and see that the contrast is inverted. Should you flip the image? Flip the transfer function? Do these options add any computational expense?
This option lets you flip the transfer function without any additional computational expense or copying.
Note: I have not added a similar option to
isotropic_thin_3d
because it takes az_position_list
directly, so the user can flip that list directly.